package zl.demo;

import java.util.Observable;
import java.util.Observer;

/**
 * @author  SuperZL 
 * @version 2012-9-3 下午2:56:09
 * 事件源类型、继承自Observable类
 */
public class ObTest extends Observable{
	
	public static void main(String[] args){
		ObTest ob = new ObTest();
		ob.addObserver(new Listener());
		ob.detonate();
	}

	/**
	 * 自定义方法
	 */
	public void detonate(){
		super.setChanged();		//必须调用此方法设置改变
		this.notifyObservers();		//唤醒监听对象。即触发事件
		//this.notifyObservers("HelloWorld!!!");		//触发事件、并给予信息
	}
	
}

/**
 * @author  SuperZL 
 * @version 2012-9-3 下午1:55:43
 * 监听器类、实现Observer接口
 */
class Listener implements Observer {

	/* (non-Javadoc)
	 * @see java.util.Observer#update(java.util.Observable, java.lang.Object)
	 * 实现Observer接口声明的方法
	 * 参数一表示触发事件的对象
	 * 参数二表示触发事件所给的信息
	 */
	@Override
	public void update(Observable o, Object arg) {
		System.out.println("事件被触发："+0);
		System.out.println("事件源所给的资源："+arg);
		//做一些事情
	}

}
